<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>
    // 通过循环按行顺序得到一个5×5的二维数组 赋值1到25的自然数，然后输出该数组的左下半三角。
    // 试编程。提示：多维数组，也就是数组里面的数据也是数组（二维数据），会涉及数据的存储区别
    // 结果
    // [
    //   [1, 2, 3, 4, 5],
    //   [6, 7, 8, 9, 10],
    //   [11, 12, 13, 14, 15],
    //   [16, 17, 18, 19, 20],
    //   [21, 22, 23, 24, 25]
    // ]
    // 1
    // 6  7
    // 11 12 13
    // 16 17 18 19
    // 21 22 23 24 25

    //第一步：先创建一个1-25的数组
    let arr = []; //定义一个空数组
    for (var i = 1; i <= 25; i++) {
      arr.push(i) //往数组推入1-25
    }
    // console.log(arr);数组[1-25]

    //第二步：循环数组arr，每5个元素推入一个数组，到了第五个后，就直接把数组设置为空
    let newArr = []; //这个数组里面的元素 存入的是几个数组
    let arr0 = []; //存放5个元素的数组
    let sum = "";

    for (var i = 0; i < arr.length; i++) { //先把5个元素推入一个数组里面
      let n = i + 1;
      let sum = arr0.push(n) //sum为推入数组中的每一个元素
      // console.log(arr0);
      if ((i + 1) % 5 === 0) { //5个元素为一组，当到5的倍数的时候，就推入下一个数组
        newArr.push(arr0)
        // console.log(newArr);
        arr0 = [] //就直接把数组设置为空
      }
    }
    console.log(newArr);

    //newArr 这个数组 是一个数组里面含有5个元素！ 元素里面试数组！

    //第三步 newArr数组 遍历数组的元素， 
    // 从数组里面，第一元素，拿到第一个值，第二个元素，拿到第一个和第二个值！
    let res0 = "";
    for (var m = 0; m < newArr.length; m++) {
      // console.log(newArr[m]); //拿到每一个数组中每一个元素！ 再遍历这些数组的每一个元素，
      for (var j = 0; j <= m; j++) {
        // console.log(newArr[m][j]);//这是拿到第一个元素的第一个值，第二个元素的第一个值和第二个值！
        res0 += newArr[m][j] + " ";
        // console.log(res0);
      }
      res0 = res0 + '\n'
      // console.log(res0);
    }
    console.log(res0);
  </script>
</body>

</html>